IaaS PaaS SaaSの違いをざっくり解説(IT未経験歓迎)
初めに
クラウドを学習する時に1番初めに理解をしなければならない概念が、今回解説するIaaS PaaS SaaSです。
これらは特定のサービスを示す言葉ではなく、サービスをまとめた大きなグループというイメージになります。
(例) S3やGCSはIaas、RDSやCloud SQLはPaaS、Google WorkspaceはSaaS...etc
例に挙げた以外でも多くのサービスがありますが、まずはそのサービス達の分類方法の理解を深めていきましょう。
クラウドとは
かなり大きな括りになりますが、簡単にお伝えすると、
「必要な時に必要なだけ、初期投資なしで、企業レベルで使用できるサーバーやネットワーク周りのインフラを借りる事が出来るサービス」となります。
ただ勘違いしてはいけないのが、上記のクラウドの説明はあくまでもIaaSやPaaSの事であり、SaaSの事ではありません。
そして、大きな概念の意味では、クラウドとは複数のサービスの集合体であり、1つのサービスを指すものではありません。
しかし、iCloudやGoogleドライブもクラウドの中の一部のため、言葉的にはクラウドであっています(その時に話す内容や表現方法による)
といことで、今回はクラウドを理解する上で重要な3つの用語(IaaS ,PaaS ,SaaS)に絞って解説していこうと思います。
IaaSとは
サーバーを例にして表現すると 「仮想OS以上をユーザー側で管理して運用するサービス」 となります。
元々クラウドサービスと言っても、実際に操作する物理的なサーバーはクラウド事業者が管理するデータセンターに存在しています。
我々利用者はその物理サーバーを遠隔(自分のPCなど)から操作することにより、クラウドサービスを使用しているのですが、仮想OSはその物理的なサーバーの中に仮想的に作成されたOSなのです。
※ちなみにOSとは、サーバーや通常のパソコンが動くために必ず必要なシステムであり、OSがそのマシンに搭載されていなければサーバーやパソコンとしての機能を果たす事ができません。
あまり馴染みがない方は分かりにくいかも知れませんが、一旦図にしてみます。
また、勘違いをしてはいけないのが仮想OS=IaaSではありません。
仮想ネットワーク周りの管理やストレージについてもIaaSに分類されると思いますので、一旦サーバーを例にした場合の理解として、 物理的なサーバーの保守/運用は事業者が担当、その中にあるOS以上のレイヤーの仮想的なシステムを担当するのがユーザー側、まずはこのような理解でいいかなと思います。
最後にGoogle Cloudのサービスを例に挙げてみます(実際にはもっと数多くのIaaSサービスが存在します)。
【Google Cloud内でのIaaS】
Google Compute Engine、Google Cloud Storage、VPCネットワーク、Cloud Interconnect...etc
PaaSとは
一般的に言われるのはミドルウェア以降をユーザー側で管理するサービスとなります。
簡単に表現するとアプリケーションを開発する基盤の管理は事業者側で、ユーザーはコードの作成/アプリケーションの管理のみで、アプリのリリース(提供)が可能となるサービスです。
アプリケーションを作成するには、コードを書く以外にもかなり多くの準備とリソース(アプリに必要なあらゆる物)が必要です。
それはミドルウェア、ネットワーク、セキュリティ、ログ...etc
このような、実際にアプリ開発に必要な裏側の準備/管理を事業者側に任せられるので、ユーザー側のメリットとしては開発することに専念できることです。
また、先にお伝えした通りIaaSの方がより下位のレイヤーをユーザー側で管理する事が出来るので、システム設計や管理の柔軟性は高いです。
ただ、インフラ周りでユーザーの負担を減らし開発に専念できるPaaSの方が、よりクラウドを利活用できる設計を組むことができます。
個人的にはクラウド事業者側も、IaaSよりもPaaSを活用してほしいという思いが大きいのではないかと感じます。
Google Cloudのサービスを例に挙げてみます(実際にはもっと数多くのPaaSサービスが存在します)。
【Google Cloud内でのIaaS】
App Engine、Dataproc、Cloud Spanner、Cloud SQL...etc/p>
SaaSとは
これまでとは仕様が変わりまして、サービス自体を利用できるサービスとなります。
アカウントを作成して、登録すれば誰でも使用できるのがこのSaaSサービスの特徴で、一部そのSaaS内で作成したデータやユーザー情報の管理は利用者側で管理しなければなりません。
本来の意味としては、ソフトウェアを利用する形態といえます。
携帯ゲームを例にしてみると分かりやすいかもしれません。利用する際にはまずは名前などを決めてアカウントを作成します。
その後、ゲームをプレイしていきますが、データのバックアップは自身で行う事が多いですよね。(ゲーム自体はソフトウェアに分類されます)
ゲームがソフトウェアというイメージはつきやすいかも知れませんが、業務用のSaaSはすぐに浮かびますでしょうか?
Google CloudのSaaSサービスではGoogle Workspaceがそれにあたります。そしてこのGoogle Workspaceは複数のSaaSサービスの集まりであり、ドキュメントと呼ばれる文書作成ツールがいい例ですので、下記にGif映像で載せます。
皆さんも学校のレポートや仕事のプレゼン資料などを作成する時に使ったことがあるのではないでしょうか?
このドキュメント(製品名)の特徴としては、それぞれアクセスが許可されたユーザー複数人で1つのファイルをオンラインで編集できるという点です。
これがSaaSの文書作成ソフトの利点となります。
MicrosoftのOfficeではWordがそれにあたりますが、オンラインで使用出来なければならないため、従来のPCにインストールして使用するOfficeではSaaSにはなりません。
Microsoft Office OnlineでのWord(表現が合っているか不明)がSaaSに当たるかと思います。
また、冒頭で触れたiCloudやGoogleドライブもSaaSサービスにあたるかと思います。
要するに、利用者は「そのサービスのユーザーとして、サービス内で出来る事を行う」という表現がいいかなと思います。
もちろん、IaaSやPaaSも出来る範囲は限られていますが、何かを提供する、開発する目的といったものはこの2つの特徴ではないかと思います。 (Google Workspaceという名のSaaS内にApps Scriptという、開発をして作成物を社内などで提供するものもありますが)
ざっくりまとめると、SaaSはユーザー情報の管理とデータ管理が利用者側が意識するレイヤーかなと思います。
ただクラウドで例えるならば、SaaSはクラウドで作るものであるという事です。
ですから、「Google CloudのIaaSやPaaSを使い自身のSaaSサービスを構築する」このようなイメージを持って頂くのがいいと思います。
最後に各レイヤーのイメージ図をのせておきます。
まとめ
クラウド未経験者の方やIT業界にあまり触れることがない方には、まず今回のようなサービス形態の理解が必要になると思います。
AWSやGoogle Cloudを触る上でも今回紹介した概念は共通することなので、まずは基礎から固めていきましょう。
次回は、よりクラウドの知識に特化したVPC、VM、IAM、Storageサービスに焦点を当てて解説します。
最後に
前職が元パーソナルトレーナーであったため、ダイエット情報や筋トレ情報を積極的に配信したいと思っています!!IT=脳=運動=体調管理⇒全ては繋がっています。
【エアロバイクで背中を鍛える】
最近は家トレでいかに効率の良い負荷の高いトレーニングができるかを考えて生きています。
その中でも家トレでの背中の筋肉は鍛えづらいので有名です。
公園で懸垂するか、ダンベルでローイングするか、、、
見つけました。
エアロバイクで背中トレーニングです。(主に大円筋と広背筋)
さすがに動画や画像は載せることが出来ないので、ポイントだけ伝えるので探り探りやってみてください。
・バイクの後ろに立ち、右足を前に、左足を後ろに、という体制をとる
→ これはローイングの姿勢です。よって、上記の場合左手でペダルを持つことになります
・体制が整ったら、ペダルを背中で引くようにして回していきます
※注意:指がペダルのつなぎ目に巻き込まれないように指や手は辛くても動かさないでください
・手の向きはペダルの側面を持つか、オーバーハンドで被せるように持ちます
・負荷のかけ方は、加重できるバイクの場合10~15回できる重さに設定した回してください
※最も注意しなければならない事 = 必ず指は巻き込まれない様に、持ち方を固定させてから本セットに入ってください!
基本的には、自分で1番聞きやすいフォームを探すのも筋トレです。
がんばりましょう!!!